package com.xf.day04

import org.apache.spark.{SparkConf, SparkContext}
import io.circe.parser._
import io.circe._
import org.apache.spark.rdd.RDD

object JsonTest {
  def main(args: Array[String]): Unit = {

    // 创建 SparkConf 对象
    val conf = new SparkConf()
      .setAppName("WordCount")
      .setMaster("local[*]")
      .set("spark.ui.port", "8080")
      .set("spark.driver.host", "127.0.0.1")

    // 创建 SparkContext 对象
    val sc = new SparkContext(conf)

    val jsonStr = sc.textFile("file:///D:\\workRecord\\spark_project20250924\\data/student.json")

//    val StrArr: Array[String] = jsonStr.collect()
//
//    for ( ele <- StrArr ){
//         println(ele)
//    }
//
//    println("=========================>")
//
//    for( i <- 0 until StrArr.length ){
//      println(StrArr(i))
//    }
//
//    println("=========================>")
    val result : RDD[Either[Error, Json]] = jsonStr.map(s => parse(s))

    // 提取所有成功的 JSON
    val successResults: RDD[Json] = result.collect { case Right(json) => json }
    // 打印出 每一个 json
    successResults.foreach(println)

    // 暂停 10 秒，方便查看 UI
    Thread.sleep(10000000)
  }

}
